// +----------------------------------------------------------------------
// | ThinkJS -- Think MVC Javascript Framework                                                           
// +----------------------------------------------------------------------
// | Copyright (c) 2008 http://thinkphp.cn All rights reserved.      
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>                                  
// +----------------------------------------------------------------------
// $Id$

var _startTime		=	new Date().getTime();

// ThinkJs 框架执行过程
// 定义THINK_PATH 
var WEB_URL			=	location.protocol+'//'+location.hostname;	 
var THINK_PATH		=	WEB_URL+'/Js/';
var VAR_MODULE		=	'module';
var VAR_ACTION		=	'action';
var DEFAULT_MODULE	=	'Index';
var DEFAULT_ACTION	=	'index';

// 解析页面参数 URL Dispatch
var _Think				=  getJsParm('Think');	//	JS参数
var _Url					=	getHTMLParm();	// URL参数
//var _Css					=	getCssParm('Think');	 // Css 参数
var _module			=	T(VAR_MODULE)? T(VAR_MODULE): DEFAULT_MODULE;	// 模块名
var _action				=	T(VAR_ACTION)?T(VAR_ACTION): DEFAULT_ACTION;	// 操作名

// 加载框架定义文件
require(THINK_PATH+'Common/define.js');
// 加载框架配置
// 定义格式 
// var _ThinkConfig = {
//	'name1'		:	'value1',
//	'name2'		:	'value2',
// }
require(THINK_PATH+'Conf/config.js');
// 加载语言包文件
//require(LANG_PATH+'zh-cn.js');

// 加载框架核心类库
ImportJs('Think.Core');
ImportJs('Think.App');

//	获取HTML页面参数 flag 为1 获取详细参数
//  http://thinkphp.cn/index.php?module=User&action=Add
function getHTMLParm()
{
	var str = window.location.search;
	str	=	str.substring(1);
	return parseStr(str);
}
// 读取script加载的js文件的参数
// <script src="Think.js?module=User&action=Add"></script>
function getJsParm(jsFile){
	var script	=	document.getElementsByTagName("script");
	for (var i=0;i<script.length ;i++ )
	{	
		var str	=	script[i].src;
		if (str.match(jsFile+'\.js\?'))
		{
			var pos	=	str.indexOf('?');
			return parseStr(str.substring(pos+1));
		}
	}
	return false;
}
// 读取script加载的css文件的参数
// <link href="Think.css?ver=1&a=ddd" rel="stylesheet" type="text/css">
function getCssParm(cssFile){
	var script	=	document.getElementsByTagName("link");
	for (var i=0;i<script.length ;i++ )
	{
		var path = script[i].href.replace(cssFile+'\.css\?','');
		if (path)
		{
			return parseStr(path);
		}
	}
	return false;
}
// 根据字符串分析参数
// name=value&name2=value2
function parseStr(str){
	var parm= {};
	var tempstr="";
	para = str.split("&");
	for(i=0;i<para.length;i++)
	{
		 tempstr1 = para[i];
		 pos = tempstr1.indexOf("=");
		 var key = tempstr1.substring(0,pos);
		 var val	=	tempstr1.substring(pos+1);
		 parm[key] = val;
	}
	return parm;
}

// 导入Js类库文件
function require(jsFile,cache)
{           
	 //var head = document.getElementsByTagName('HEAD').item(0); 
	 //var script = document.createElement('SCRIPT'); 
	 if (!cache)	 jsFile	 += '?'+Math.random();	// 添加随机数 避免JS缓存
	 //script.src = jsFile;
	 //script.type = "text/javascript"; 
	 //head.appendChild(script); 
	 document.write('<script type="text/javascript" src="'+jsFile+'"></script>');
 }
// 动态载入Js类库
function ImportJs(filename,basePath) 
{         
	var space = filename.split(".");
	if (!basePath) {
		if (space[0]=='Think' || space[0] == 'Org' || space[0] == 'Com')
		{
			basePath	=	THINK_PATH+'Lib/';
		}else{
			basePath	=	THINK_PATH+'App/';
		}
	}
	jsFile = basePath + filename.replace(/\./g, '/') + '.js';
	require(jsFile,false);
 }
// 获取js传递的参数
function T(name){
	return _Think[name]?_Think[name]:_Url[name];
}
// 获取设置参数
function C(name){
	return _ThinkConfig[name];
}
// 获取语言参数
function L(name){
	return _ThinkLang[name];
}

 // 动态载入CSS文件
//function ImportCss(cssFile,basePath) 
//{             
//	 if (basePath == undefined)
//		 basePath =	C('BaseCssPath');
//	 cssFile = basePath + cssFile.replace(/\./g, '/') + '.css';
//	 document.createStyleSheet(cssFile); 
//} 
function ImportCss(cssFile,basePath) 
{             
	 var head	= document.getElementsByTagName('HEAD').item(0); 
	 var link		= document.createElement('LINK'); 
	 if (basePath == undefined)
		 basePath =	C('BaseCssPath');
	 cssFile = basePath + cssFile.replace(/\./g, '/') + '.css';
	 link.href = cssFile; 
	 link.rel	= 'stylesheet';
	 head.appendChild(link); 
 }
// 动态创建网页元素
 function CreateElement(type,owner)
 {
	 var element = document.createElement(type); 
	 owner.appendChild(element);
 }
// 输出对象的所有属性
 function getProperties(o)
{ 
	var str = '对象'+o+'的属性和对应值：<br>';
	for(x in o) 
	{ 
		str += x + ' : ' + o[x]+'<br>';
	 }
	document.write(str);
} 
// 输出对象的所有样式
function getStyles(o)
 { 
  var str = '对象'+o+'的样式列表和当前值：<br>';
  var o = o.style;
  for(x in o) 
   { 
   str += x + ':'+ o[x]+'<br>' ;
    }
   document.write(str);
 } 
// 添加页面事件
function addEvent(element,event,fun){
	if(document.getElementById(element)){
		var obj	=	document.getElementById(element);
	}else{
		var obj	=	element; 
	}
	if (document.all){
		obj.attachEvent('on'+event,fun)//IE中
	}
	else{
		obj.addEventListener(event,fun,false);//firefox
	}
}
